package Chapter11;

/**
 * @author 杨森
 * @date 2022年10月19日 22:02
 */
public class Enumeration03 {
    public static void main(String[] args) {
        System.out.println(Season.AUTUMN);
    }
}

//使用enum来实现枚举类
enum Season2 {
//    如果使用了enum来实现枚举类
//    1.使用关键字enum替代class
//    2.    public static final Season SPRING=new Season("春天","温暖");
//          直接使用SPRING("春天", "温暖")
//    3.如果有多个常量（对象），使用，间隔
//    4.如果使用了enum来实现枚举类，要求将定义常量对象，写在前面

    SPRING("春天", "温暖"), SUMMER("夏天", "炎热"), AUTUMN("秋天", "凉爽"), WINTER("冬天", "寒冷");
    private String name;
    private String desc;

    //    1.将构造器私有化，目的防止直接new
//    2.去掉Set方法，防止属性被修改
//    3.在Season内部，直接创建固定的对象
//    4.优化 加入final修饰符
    private Season2(String name, String desc) {
        this.name = name;
        this.desc = desc;
    }

    public String getName() {
        return name;
    }


    public String getDesc() {
        return desc;
    }

    @Override
    public String toString() {
        final StringBuffer sb = new StringBuffer("Season{");
        sb.append("name='").append(name).append('\'');
        sb.append(", desc='").append(desc).append('\'');
        sb.append('}');
        return sb.toString();
    }
}
